Non-modal dialog for managing blocking of multiple web browser cookies

ABSTRACT

In order to provide a user with control of how persistent information is used in a Web browser to aid in the display of website content in a non-disruptive manner, a system and a method are provided that allow a user to access a non-modal graphical user interface control using a Web browser. The non-modal graphical user interface control allows the user to specify one or more pieces of persistent information that the Web browser associates with the website content. The Web browser then uses the persistent information to aid in displaying the Web content while allowing the user to continue to use the browser.

BACKGROUND

A Web browser is a piece of software that facilitates access to websiteson the World Wide Web (WWW, or Web), which is a set of informationalresources hosted on the Internet. While browsers were text-based in theearly stages of the Web, most modern browsers present a user withhypertext pages that integrate text, graphics, and other multimediacontent. Modern browsers also allow the user to provide input tonavigate from webpage to webpage to satisfy their informational needs.

Web browsers traditionally operate based on a client-server model. Inthe client-server model, a distributed architecture is used where tasksare divided between resource providers, called servers, and serviceusers, called clients. As part of the operation of the Web, often a userwill operate a client machine, which uses support functionality that ishosted by a server. Alternatively, both client and server functionalitymay be distributed over a local area network (LAN) or within a singlemachine.

Servers often host processing tasks to reduce the computational burdenplaced on a client. Servers may have greater processing or storageresources than the clients, or multiple servers may collaborate onprocessing tasks. However, even if a server is able to takeresponsibility for certain processing tasks, certain parts of theinteraction between clients and servers may require client-sidecapability. For example, in running a scripting language such asJavaScript, commands are embedded in the Hypertext Markup Language(HTML) files that the server transmits to the client. However, once thescripting commands have been transmitted to the client environment, theWeb browser executes the JavaScript commands locally within the Webbrowser at the client, without demanding further resources from theserver.

Another type of interaction within the client-server model is thestorage of persistent information by the client, also referred to asclient-side storage. An example of persistent information that might bestored by a client is the type of information known as a “cookie”, alsoreferred to as a Web cookie, a browser cookie, or an HTTP cookie.

Cookies are textual information stored on the user's computer by the Webbrowser. They allow Web browsers to perform tasks where locally storinginformation is necessary, such as authentication, storing preferences,e-commerce, session management, or any other function that storingpersistent information can accomplish. Cookies may include name-valuepairs, and encryption of cookies is possible if security is necessary.Cookies are transmitted from the server using HTTP (Hypertext TransferProtocol) to the Web browser as part of header material.

Cookies may expire, or users may take action to intervene and managecookies by deleting unwanted cookies. Cookies pose a danger, however, inthat they preserve a record of information that the user may prefer tokeep as private, and as such may be used as spyware. For example,websites that read cookies may glean information about useridentification, preferences and activity.

Cookies are not executable, and therefore cannot take destructive actionon their own. However, the fact that they expose information that someusers may wish to hide presents a dilemma for users. Some websites mayabsolutely require the use of cookies in order to function properly. Forexample, an online merchant may use cookies to track a user's shoppingcart, and if cookies are not operational, the e-commerce process maybreak down. Therefore, users may need assistance in managing access topersistent information such as cookies in Web browsers in a convenient,facilitated manner.

BRIEF SUMMARY

Embodiments relate to managing the use of persistent information whileproviding access to webpages by a Web browser in a manner that minimizesinterference with the Web browsing experience. According to anembodiment, a system for managing persistent information in a Webbrowser is provided. The system includes a Web browser that isconfigured to receive website content via a network connection and isconfigured to display the website content as one or more websites in oneor more viewing areas, without loading all persistent informationassociated with the websites. The system also includes a non-modalgraphical user interface control, activated using the Web browser, thatis configured to display a set of one or more persistent informationitems available via the network connection that, when associated with atleast one of the one or more websites, aid in the displaying of the atleast one website. The system further includes an input module that isconfigured to receive from a user, via the non-modal graphical userinterface control, a selection of one or more pieces of the persistentinformation to retrieve via the network connection. The system alsoincludes a retrieving module that is configured to retrieve the selectedone or more pieces of persistent information via the network connectionto the Web browser. The system further includes a redisplaying modulethat is configured to associate the selected one or more pieces ofpersistent information in the Web browser with the at least one websiteand is configured to use the selected associated one or more pieces ofpersistent information to display the at least one website again.

According to another embodiment, a computer-implemented method managespersistent information in a Web browser. In the exemplary method,website content is received by a Web browser via a network connectionand displayed as one or more websites in one or more viewing areas,without all persistent information associated with the websites beingloaded. Using the Web browser, a non-modal graphical user interfacecontrol is activated that displays a set of one or more persistentinformation items available via the network connection that, whenassociated with at least one of the one or more websites, aid in thedisplaying of the at least one website. A selection of one or morepieces of the persistent information from the available persistentinformation is received from a user, via the non-modal graphical userinterface control. The selected one or more pieces of persistentinformation in the Web browser are associated with the at least onewebsite. The selected associated one or more pieces of persistentinformation are then used to display the at least one website again.

According to another embodiment, a computer-readable medium hascomputer-executable instructions stored thereon that, when executed by aprocessor, cause the processor to manage persistent information in abrowser by executing the method described above.

Further embodiments, features, and advantages of the invention, as wellas the structure and operation of the various embodiments of theinvention are described in detail below with reference to accompanyingdrawings

BRIEF DESCRIPTION OF THE FIGURES

The accompanying drawings, which are incorporated herein and form a partof the specification, illustrate the subject of the present applicationand, together with the description, further serve to explain theprinciples of the subject of the present application and to enable aperson skilled in the pertinent art to make and use the subject of thepresent application.

The drawing in which an element first appears is typically indicated bythe leftmost digit or digits in the corresponding reference number. Inthe drawings, like reference numbers may indicate identical orfunctionally similar elements.

FIG. 1 is a diagram illustrating a client system that manages persistentinformation in a Web browser, according to an embodiment.

FIG. 2 is a diagram of a client system that retrieves persistentinformation for a Web browser in a networked environment, according toan embodiment.

FIG. 3 is a flowchart of a method for managing persistent information,according to an embodiment.

FIG. 4 is another flowchart of a method for managing persistentinformation, according to an embodiment.

FIG. 5 is a screenshot of a graphical user interface control, accordingto an embodiment.

FIG. 6 is a screenshot of another graphical user interface control,according to an embodiment.

FIG. 7 is a screenshot of another graphical user interface control,according to an embodiment.

DETAILED DESCRIPTION OF EMBODIMENTS

In the detailed description of embodiments that follows, references to“one embodiment”, “an embodiment”, “an example embodiment”, etc.,indicate that the embodiment described may include a particular feature,structure, or characteristic, but every embodiment may not necessarilyinclude the particular feature, structure, or characteristic. Moreover,such phrases are not necessarily referring to the same embodiment.Further, when a particular feature, structure, or characteristic isdescribed in connection with an embodiment, it is submitted that it iswithin the knowledge of one skilled in the art to effect such feature,structure, or characteristic in connection with other embodimentswhether or not explicitly described.

Each of the constituent parts of a system embodiment may be implementedon any computing device. Such computing device can include, but is notlimited to, a personal computer, mobile device such as a mobile phone,workstation, embedded system, game console, television, set-top box, orany other computing device. Further, a computing device can include, butis not limited to, a device having a processor and memory for executingand storing instructions. Software may include one or more applicationsand an operating system. Hardware can include, but is not limited to, aprocessor, memory and graphical user interface display. The computingdevice may also have multiple processors and multiple shared or separatememory components. For example, the computing device may be a clusteredcomputing environment or server farm.

Each of the constituent parts of a system embodiment may be implementedin hardware, software, firmware, or any combination thereof. Likewise,modules or instructions that constitute operative parts of embodimentsmay utilize any type of structured memory, including a persistentmemory. In examples, each data storage infrastructure may be implementedas a relational database.

It should be noted that computer-readable medium embodiments may includeany physical medium which is capable of encoding instructions that maysubsequently by used by a processor to implement methods describedherein. Example physical media may include floppy discs, optical discs(e.g. CDs, mini-CDs, DVDs, HD-DVD, Blu-ray), hard drives, punch cards,tape drives, flash memory, memory chips. However, any other type oftangible, persistent storage that can serve in the role of providinginstructions to a processor may be used to store the instructions inthese embodiments.

Overview

Often setting cookies, since it is done at the client, is largelyhandled by client-side scripting languages such as JavaScript. In atraditional approach, the layout engine of a Web browser transforms HTMLfrom raw markup language into an interactive webpage that the user mayaccess using the graphical user interface (GUI) functionality of thebrowser. As part of the transformative process, the layout engineprovides the chance for client-side multimedia functionality throughplugins such as ADOBE FLASH, as well as client-side scripting such asJavaScript. However, when loading a webpage that may involve cookies,the Web browser must decide what approach to take with respect to how ithandles loading cookies and other persistent information as part of theprocess of loading the webpage.

One approach is to provide an “all-or-nothing” approach, wherein theuser simply provides a generalized setting in advance such that allcookies are either allowed or disallowed. However, as previously noted,this is an imperfect solution because this approach simply provides achoice between a security risk and a lack of functionality.

Another alternative is to allow cookies, and then allow the user tosubsequently delete them. This allows the user to save spacesubsequently, but the dangers of cookies, such as cookies acting asspyware, still remain.

Another approach is to provide a modal dialog to the user as webpagesare loaded. A dialog box is a type of graphical user interface controlthat provides a window to the user. The dialog box presents informationto the user, and receives input from the user in return. Dialog boxesmay be divided into the categories of “modal” and “non-modal” (or“modeless”). The distinction between these two types of dialog box isthe way in which their functioning coordinates with the program thatgenerates them.

With a modal dialog box, some specific interaction between the user andthe dialog box must occur before the user can continue interacting withthe program that activates the modal dialog. An example of a modaldialog is an alert, which displays a piece of information, and it isconsidered crucial that there be an acknowledgement before the user cancontinue. For example, if a document is being closed, an alert box mayneed to ascertain whether or not to save the document. In this case, itwould be inappropriate to continue interacting with the applicationuntil this question is answered.

However, a non-modal dialog box is appropriate when the informationprovided by the dialog box is not crucial for the calling application toproceed properly, but interaction with the calling application isdesirable. For example, a dialog box that provides access to aspell-checker may be presented as a non-modal dialog, because it may behelpful to allow the user to edit the document even as the spell-checkcontinues.

At present, access to cookies by webpages has been provided by modaldialogs that activate as the webpages are loaded. For example, versionsof the GOOGLE CHROME Web browser have used JavaScript code to setcookies such as:

document.cookie=“A=B”;

console.log(document.cookie);

However, such code requires that JavaScript execution be blocked untilthe user decides whether to allow the cookie to be set or not. SinceWEBKIT, the layout engine of the GOOGLE CHROME Web browser, assumes thatit always can execute JavaScript, blocking JavaScript amounts toblocking the rendering process. If the renderer is shared betweenmultiple tabs and/or windows, the prompt may be application modal, andat least block accessing other parts of the Web browser. These modaldialogs allow the user to choose, before a webpage is loaded, whether toallow or disallow cookies or other persistent information associatedwith the webpage. Alternatively, the dialog may allow more fine-tunedcontrol of the cookies or other persistent information.

However, the drawback of this dialog-based approach is that because thedialog that provides access to the cookies is modal, the user must makehis or her decision about whether to load cookies in advance of loadingthe webpage, and the user cannot continue browsing in any of the otherwindows or tabs of the browser until he or she has addressed the issueof cookies or other persistent information.

The diagram of FIG. 1 illustrates a computing device 100 that contains acombination of hardware, software, and firmware constituent parts thatallow it to run Web browser 131 in an application layer 130 with accessto the Web over a network 191. Computing device 100 may be aconventional computer such as a desktop or laptop PC, but it mayadditionally be any Web-enabled peripheral such as a game console, atablet, a netbook or a smartphone. Computing device 100 as shown in FIG.1 may be organized around a system bus 108, but any type ofinfrastructure that allows the hardware infrastructure elements ofcomputing device 100 to communicate with and interact with each othermay be used to function as this part of computing device 100.

The processing task in the embodiment of FIG. 1 is carried out by one ormore processors 102, but it should be noted that any type of processingtechnology may be used here, including multi-core processors, multipleprocessors, or distributed processors. Additional specialized processingresources such as graphics, multimedia, or mathematical processingcapabilities, either in hardware or in software, may also be used asadjuncts or replacements for processors 102 for certain processingtasks.

In order to manipulate data to act as an embodiment, processors 102access a memory 104 via system bus 108. For data which needs to bestored more permanently, the processor accesses persistent storage 106.Processors 102, memory 104 and persistent storage 106 operate incoordination with operating system 120 to provide basic functionalityfor computing device 100. Operating system 120 provides supportfunctionality for a layer of applications 130. In the context of theapplications 130, computing device 100 executes a Web browser 131.

Web browser 131 may include a variety of viewing areas, which generallyinclude windows and tabs, that provide graphical renditions of HTML Webpages and associated multimedia. In FIG. 1, exemplary viewing areas havebeen provided as Window 140, including Tab 141 and Tab 142, Window 150,including Tab 151, Tab 152, and Tab 153, and Window 160 including Tab161. These viewing areas represent display areas in which each websiteis displayed by Web browser 131.

Computing device 100 may use network connection 190 to communicate withother processing machines via network 191. Network connection 190 may bea wired connection such as Ethernet, token ring, or optical, DSL, cable,or phone connections in conjunction with an appropriate modem.Similarly, appropriate wireless technology may be used to act as networkconnection 190 to access a network 191. Network 191 may be the Internet,a local area network, or any other network 191 of machines with whichcomputing device 100 may exchange data.

As another piece, the computer system 100 includes in application layer130, activated by Web browser 131, a non-modal graphical user interfacecontrol 170 for regulating persistent information. This non-modalgraphical user interface control 170 for regulating persistentinformation further provides access to a non-modal rules settinginterface control component 171 and a non-modal pattern settinginterface control component 172 that together allow a user 175 toregulate how persistent information is used. Example screenshots ofthese three components are provided in FIG. 5, FIG. 6, and FIG. 7.

The Web browser 131 receives input from a user 175 via an input module195. The input module 195, based on directions given by user 175,directs a retrieving module 192 to retrieve Web pages after the user 175has associated persistent content with them. Such an association may bemade by JavaScript or other scripting commands 194. The Web pages may beredisplayed by a redisplaying module 193.

FIG. 2 is a diagram of a client system that retrieves persistentinformation for a Web browser in a networked environment, according toan embodiment. The computer system 100, network connection 190, andnetwork 191 have been discussed in relation to FIG. 1. As noted,computer system 100 may serve as a client machine, and the network 191may be the Internet. In one embodiment, the functionality of theembodiment is distributed such that the computer system 100 uses the Webbrowser 131 to access one or more servers, such as server 200, server220, and server 230, in conjunction with a client-server relationship.This configuration is not meant to exclude the possibility ofembodiments that operate in conjunction with other network architecturessuch as peer-to-peer arrangements, which may be used in otherembodiments.

An expanded view of server 200 is provided in FIG. 2. Server 200executes a Web server 201, which is based on an appropriate combinationof one or more of software, hardware, and firmware, and provides accessto one or more websites via the network 191. Computer system 100receives the websites via network connection 190.

The Web server 201 provides access to a variety of types of persistentinformation that the computer system may request in association with theWeb pages. The persistent information is loaded by the client computersystem 100, stored locally in memory 104 temporarily, and possibly inpersistent storage 106 on a more permanent basis. These types ofpersistent information may include, but are not limited to: HTTP cookies202, Document Object Model (DOM) storage 203, protocol preferences 204,Web databases 205, local storage 206, AppCache 207, HTML 5 persistentinformation 208, FileWriter API information 209, and indexed databases210.

The common factor which these types of information share is that thesetypes of information originate at the Web server 201 as responses to theuser's use of the Web browser 131. These types of information are thentransmitted back to be stored at the computer system 100 to be usedthere in displaying Web pages in viewing areas. For example, viewingareas may include window 140, window 150, and window 160 as well astheir constituent tabs tab 141, tab 142, tab 151, tab 152, tab 153, andtab 161. It should be noted that embodiments may control informationflow for any type of information such as the information listed abovethat originates at the Web server 201 and subsequently resides at thecomputer system 100 to be used in conjunction with displaying the Websites in the viewing areas.

FIG. 3 is a flowchart of a method of managing the persistentinformation, according to an embodiment. The method begins at stage 300.In stage 310, website content is received by a Web browser via a networkconnection and displayed as one or more websites in one or more viewingareas, without loading all persistent information associated with thewebsites. Stage 310 may be performed, for example, by Web browser 131 ofFIG. 1, in conjunction with network connection 190 and network 191 ofFIG. 1-2. In stage 320, a non-modal graphical user interface controlthat displays a set of one or more persistent information itemsavailable via the network connection is activated by the Web browser.The persistent information items are items that, when associated with atleast one of the one or more websites, aid in the displaying of the atleast one website. Stage 320 may be performed, for example, by non-modalgraphical user interface control 170. Stage 330 includes receiving froma user, via the non-modal graphical user interface control, a selectionof one or more pieces of the persistent information from the availablepersistent information to retrieve via the network connection. Stage 330may be performed, for example, by non-modal graphical user interfacecontrol 170, in conjunction with at least one of non-modal rules settinginterface control component 171 and non-modal pattern setting interfacecontrol component 172. In stage 340, the selected one or more pieces ofpersistent information in the Web browser is associated with the atleast one website. The association of stage 340 may be performed, forexample, by retrieving module 192, that activates JavaScript scripting194 to cause the association. In stage 350, the selected associated oneor more pieces of persistent information are used to display the atleast one website again. This redisplaying of stage 350 may beperformed, for example by redisplaying module 193. Stage 360 concludesthe method.

In the exemplary method of FIG. 3, websites are loaded with at most asubset of the available persistent information (see stage 310) and onlysubsequently involve other pieces of available persistent information asselected by the user (see stages 320-350). In this manner, thepersistent information is used as part of the redisplaying processcarried out by the redisplaying module.

FIG. 4 is another flowchart of a method for managing persistentinformation, according to an embodiment. The method begins at stage 400.In stage 410, a selection of pieces of persistent information to loadfrom the server is received from a client using a non-modal graphicaluser interface control for regulating persistent information. Thenon-modal graphical user interface control for regulating persistentinformation lists specific pieces of persistent information andinformation about the specific pieces of information by using one of twocontrol components. For example, the non-modal rules setting interfacecontrol component, such as component 171, may specify rules that specifyfor one or more Web domains whether storage of persistent information isto be allowed for a current browsing session, allowed permanently, orblocked. A non-modal patterns setting interface control component, suchas component 172 may specify for patterns of one or more Web domainswhether storage of persistent information is to be allowed for thecurrent browsing session, allowed permanently, or blocked.

In an embodiment, the non-modal user interface item (which may be adialog box, though other non-modal GUI items may be used appropriatelyas well) provides user 175 with access to different types of persistentinformation associated with the webpages. In stage 401, for example,user 175 can choose to allow the persistent information to be loaded forthe current browsing session, to allow the information permanently, orto block the information.

Thus, in stage 410, a user may gain access to a variety of settings. Forexample, user 175 might gain access to a set of HTTP cookies 202,protocol preferences 204, and AppCache 207, and choose to load all ofthe HTTP cookies 202 permanently, load some of the protocol preferences204 for the current session, and block the AppCache 207.

Stage 420 interrelates the user's interaction with the non-modalgraphical user interface control for regulating persistent informationwith the Web browser. In stage 420, the client may continue browsingwhile the non-modal graphical user interface control for regulatingpersistent information remains active in the background. This approachis different than the customary approach, which uses a modal userinterface item to regulate persistent information, obtrusivelyinterfering with the user's browsing experience. Stage 420 may beperformed, for example, by retrieving module 192 and redisplaying module193, which may cooperate to associate the persistent information withthe viewing areas window 140, window 150, and window 160 and theirassociated tabs in the background, as browsing continues at Web browser131.

In stage 430, when the client is finished establishing the rules orpatterns (using the non-modal rules setting interface control componentor non-modal rules setting patterns control component), the server sendsthe pieces of persistent information to the client. Stage 430 may beperformed, for example, by non-modal rules setting interface controlcomponent 171 or non-modal pattern setting interface control component172 to determine which persistent information to retrieve. Stage 430 mayfurther include the operation of retrieving module 192 that receives theinformation, and redisplaying module 193 that then redisplays the Webpages in the viewing areas.

Stage 440 details the operation of the JavaScript or other scriptingoperations. In stage 440, JavaScript commands or other client-sidefunctionality associate persistent information in the browser, withoutblocking execution of other JavaScript commands. Stage 440 may beperformed, for example, between retrieving module 192 and redisplayingmodule 193. JavaScript associating 194 operates such that the retrievingmodule 192 retrieves information, associates it with the Web pages, andthe redisplaying module displays the Web pages with the aid of theassociated information.

Stage 450 concludes the method.

EXAMPLES

FIG. 5 is a screenshot of a graphical user interface control that allowsa user 175 to set high-level settings for cookies, which are a type ofpersistent information, according to an embodiment. Specifically,embodiments may display a cookie options window 500 in a Web browser131. Web browser 131 displays a non-modal graphical user interface item170 for regulating persistent information. In the example of FIG. 5, thenon-modal graphical user interface item is a non-modal dialog box 170.Non-modal dialog box 170 includes several sub-controls to receive inputfrom a user 175.

In an embodiment, interface item 170 includes radio buttons with cookiesettings 501. In the example of FIG. 5, this allows the user 175 with achoice between “Allow local data to be set (recommended)” and “Blocksites from setting any data”. A checkbox 502 may be used to “Block allthird-party cookies without exception”. A checkbox 503 may be used to“clear cookies and other site data when I close my browser”, whichprevents cookies from persisting from session to session. Finally,exemplary interface item 170 includes an icon 504 that may be selectedto show cookies (“Show cookies and other site data . . . ”). Icon 504may lead to a non-modal rules setting interface item component that isdetailed in FIG. 6, as well as an icon 505 for “Exceptions . . . ”. Icon505 may lead to the Cookie Exceptions window of FIG. 7. In exemplaryitem 170, a choice for “ADOBE FLASH Player storage settings . . . ” isprovided, and embodiments may include functionality for controllingstorage settings for ADOBE FLASH Player.

In order to carry out the commands entered in the non-modal graphicaluser interface item 170 for regulating persistent information, Webbrowser 131 loads Web pages with associated persistent information. Inembodiments described herein, the websites are initially loaded with asubset of persistent information. A user can then easily reload the Webpages after entering settings that provide for selectively loadingcertain pieces of persistent information, using, for example, retrievingmodule 192 and redisplaying module 193.

FIG. 6 is a screenshot of a graphical user interface control and cookierule setting window 600 that allows a user 175 to exercise detailedcontrol over the loading of cookies and other pieces of persistentinformation, according to an embodiment. Window 600 includes a non-modalrules setting interface item component 171, and allows the user 175 toindividually manage pieces of persistent information and theirtreatment. Window 600 lists websites 601, displays a tree 602 ofpersistent information types, information 604 about a current piece ofpersistent information, and buttons for “allow”, “allow permanently”,and “block”, that collectively allow the user 175 to set treatment forthe current piece of persistent information 606. By navigating thenon-modal rules setting interface item component 171, the user 175 canchange which pieces of persistent information are retrieved along withthe webpages. When the non-modal rules setting interface item component171 is closed out, the retrieving module 192 and redisplaying module 193work together to redisplay the webpages with which the user 175 hasassociated persistent information.

FIG. 7 is a screenshot of a graphical user interface control and cookiepattern setting window 700 that allows a user 175 to set patterns ofcookies and manage responses to cookies that match those patterns usinga non-modal pattern setting interface item 172, according to anembodiment. Window 700 includes a window that allows the user 175 to setcookie exceptions 701 by entering cookie patterns 702 and cookie actions703. For example, the user 175 might enter “session*” and set “sessiononly”, so that all cookies that began with the phrase “session” would beset for the present session.

Embodiments provide additional functionality by managing cookies andother persistent information, as well as any appropriate equivalents.Embodiments offer control over the usage of cookies and other persistentinformation in displaying a Web page so as to protect the user's privacyand security, while maximizing browser flexibility and userfriendliness. Speed is also increased because cookies are notautomatically loaded. Thus, the user gains power and flexibility withrespect to cookie management, and this approach facilitates using thecookies the user needs without halting browsing every time a cookiemight be required or exposing security holes in the embodiments.

The Summary and Abstract sections may set forth one or more but not allexemplary embodiments of the present invention as contemplated by theinventor(s), and thus are not intended to limit the present inventionand the appended claims in any way.

Embodiments have been described above with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the invention that others can, by applyingknowledge within the skill of the art, readily modify and/or adapt forvarious applications such specific embodiments, without undueexperimentation, without departing from the general concept of thepresent invention. Therefore, such adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teachings and guidance presentedherein. It is to be understood that the phraseology or terminologyherein is for the purpose of description and not of limitation, suchthat the terminology or phraseology of the present specification is tobe interpreted by the skilled artisan in light of the teachings andguidance.

The breadth and scope of the present invention should not be limited byany of the above-described exemplary embodiments, but should be definedonly in accordance with the following claims and their equivalents.

What is claimed is:
 1. A system for managing persistent information in aWeb browser, comprising: a Web browser implemented on a processor thatwhen executed by the processor receives website content via a networkconnection and configured to display the website content as one or morewebsites in one or more viewing areas, without loading all persistentinformation associated with the websites; a non-modal graphical userinterface control, activated using the Web browser, configured todisplay a set of one or more persistent information items available viathe network connection that, when associated with at least one of theone or more websites, aid in the displaying of the at least one website,wherein the Web browser is configured to allow the user to browse thedisplayed website content while the non-modal graphical user interfacecontrol remains active; an input module configured to receive from auser, via the non-modal graphical user interface control, a selection ofone or more pieces of the persistent information to retrieve via thenetwork connection, wherein the selection is based on patternsassociated with one or more pieces of the persistent information, andspecifies whether storage of persistent information is to be allowed forthe current browsing session, allowed permanently, or blocked; aretrieving module configured to retrieve the selected one or more piecesof persistent information via the network connection to the Web browser;and a redisplaying module configured to associate the selected one ormore pieces of persistent information in the Web browser with the atleast one website and configured to use the selected associated one ormore pieces of persistent information when allowed for the currentbrowsing session or allowed permanently to display the at least onewebsite again.
 2. The system of claim 1, wherein the pieces ofpersistent information are of one or more of: HTTP cookies, DOM storage,protocol preferences, information from Web databases, data in localstorage, AppCache, HTML 5 persistent information, Filewriter APIinformation, or information from indexed databases.
 3. The system ofclaim 1, wherein the retrieving module is configured to run scriptingcommands to associate the selected pieces of persistent information withthe websites and the associating of the selected pieces of persistentinformation does not block the execution of other scripting commands atthe Web client.
 4. The system of claim 1, wherein the Web browser isconfigured to allow the user to browse one or more additional websitesdisplayed in the Web browser while the non-modal graphical userinterface control remains active in a background of the Web browser. 5.The system of claim 1, wherein the Web client comprises a permanentstorage that is configured to store the selected persistent informationthat is to be allowed permanently.
 6. The system of claim 1, wherein thenon-modal user interface control is configured to provide to the user alist of sites whose access to persistent information is controlled,along with a list of specific pieces of the persistent information andaccess to information about the specific pieces of persistentinformation.
 7. A computer-implemented method for managing persistentinformation in a Web browser, comprising the steps of: receiving websitecontent by a Web browser via a network connection and displaying thewebsite content as one or more websites in one or more viewing areas,without loading all persistent information associated with the websites;activating, using the Web browser, a non-modal graphical user interfacecontrol that displays a set of one or more persistent information itemsavailable via the network connection that, when associated with at leastone of the one or more websites, aid in the displaying of the at leastone website, wherein the Web browser is configured to allow the user tobrowse the displayed website content while the non-modal graphical userinterface control remains active; receiving from a user, via thenon-modal graphical user interface control, a selection of one or morepieces of the persistent information from the available persistentinformation to retrieve via the network connection, wherein theselection is based on patterns associated with one or more pieces of thepersistent information, and specifies whether storage of persistentinformation is to be allowed for the current browsing session, allowedpermanently, or blocked; associating the selected one or more pieces ofpersistent information in the Web browser with the at least one website;and using the selected associated one or more pieces of persistentinformation when allowed for the current browsing session or allowedpermanently to display the at least one website again.
 8. Thecomputer-implemented method of claim 7, wherein the pieces of persistentinformation are of one or more types chosen from the list consisting of:HTTP cookies, DOM storage, protocol preferences, information from Webdatabases, data in local storage, AppCache, HTML 5 persistentinformation, Filewriter API information, and information from indexeddatabases.
 9. The computer-implemented method of claim 7, furthercomprising associating the selected pieces of persistent informationwith the websites in a manner that does not block the execution of otherscripting commands at the Well client.
 10. The computer-implementedmethod of claim 7, wherein the Web browser allows the user to browse oneor more additional websites displayed in the Web browser while thenon-modal graphical user interface control remains active in abackground of the Web browser.
 11. The computer-implemented method ofclaim 7, further comprising storing the selected persistent informationthat is to be allowed permanently.
 12. The computer-implemented methodof claim 7, further comprising providing to the user a list of siteswhose access to persistent information is controlled, along with a listof specific pieces of the persistent information and access toinformation about the specific pieces of persistent information.
 13. Acomputer-readable medium having computer-executable instructions storedthereon that, when executed by a processor, cause the processor tomanage persistent information in a browser by executing stepscomprising: receiving website content by a Web browser via a networkconnection and displaying the website content as one or more websites inone or more viewing areas, without loading all persistent informationassociated with the websites; activating, using the Web browser, anon-modal graphical user interface control that displays a set of one ormore persistent information items available via the network connectionthat, when associated with at least one of the one or more websites, aidin the displaying of the at least one website, wherein the Web browseris configured to allow the user to browse the displayed website contentwhile the non-modal graphical user interface control remains active;receiving from a user, via the non-modal graphical user interfacecontrol, a selection of one or more pieces of the persistent informationfrom the available persistent information to retrieve via the networkconnection, wherein the selection is based on patterns associated withone or more pieces of the persistent information, and specifies whetherstorage of persistent information is to be allowed for the currentbrowsing session, allowed permanently, or blocked; associating theselected one or more pieces of persistent information in the Web browserwith the at least one website; and using the selected associated one ormore pieces of persistent information when allowed for the currentbrowsing session or allowed permanently to display the at least onewebsite again.
 14. The computer-readable medium of claim 13, wherein thepieces of persistent information are of one or more types chosen fromthe list consisting of: HTTP cookies, DOM storage, protocol preferences,information from Web databases, data in local storage, AppCache, HTML 5persistent information, Filewriter API information, and information fromindexed databases.
 15. The computer-readable medium of claim 13, furthercomprising instructions that, when executed by a processor, cause theprocessor to associate the selected pieces of persistent informationwith the websites in a manner that does not block the execution of otherscripting commands at the Web client.
 16. The computer-readable mediumof claim 13, wherein the Web browser allows the user to browse one ormore additional websites displayed in the Web browser while thenon-modal graphical user interface control remains active in abackground of the Web browser.
 17. The computer-readable medium of claim13, further comprising instructions that, when executed by a processor,cause the processor to store the selected persistent information that isto be allowed permanently.
 18. The computer-readable medium of claim 13,further comprising instructions that, when executed by a processor,cause the processor to provide to the user a list of sites whose accessto persistent information is controlled, along with a list of specificpieces of the persistent information and access to information about thespecific pieces of persistent information.